Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Sparse (SQL)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Sparse_(SQL)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Sparse_SQL rootpage-Sparse_SQL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Sparse (SQL)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Sparse</b> bezeichnet in <a href="Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft-SQL</a> sowohl eine spezielle Spaltenkonfiguration, wie auch das Argument mittels der die Spalte dazu entsprechend konfiguriert wird.
</p><p>Unabhängig von ihrem <a href="Microsoft_SQL#Datentypen" class="mw-redirect" title="Microsoft SQL">Datentyp</a> (wie z.&nbsp;B. <i>int, varchar</i> oder <i>date</i>) können Spalten einer <a href="Datenbank" title="Datenbank">Datenbank</a> je nach Konfiguration auch <a href="Nullwert" title="Nullwert">Nullwerte</a> enthalten. Der Nullwert ergibt sich aber nicht einfach durch die fehlende Existenz eines Wertes, sondern muss explizit als Nullwert gespeichert werden. Dies geschieht bei Microsoft-SQL durch einen sogenannten Null-Bitmap. Wird bei einer Spalte davon ausgegangen, dass sie spärlich (<i>sparse</i>) besetzt sein wird, d.&nbsp;h. mehrheitlich Nullwerte enthalten wird, kann diese mittels des Arguments <i>SPARSE NULL</i><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> zu einer Sparse-Spalte (engl. <i>Sparse Column</i>) konfiguriert werden. Eine Sparse-Spalte benötigt zur Speicherung von Nullwerten wirklich keinen Speicherplatz mehr, benötigt jedoch dafür mehr Speicher, wenn ein anderer Wert als der Nullwert gespeichert wird.
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiel">Beispiel</h2></div>
<p>Eine Liegenschaftsverwaltung legt für eine neue Liegenschaft eine Tabelle für ihre Mieter an. Die Liegenschaft enthält 200 Wohnungen, aber nur 5 Parkplätze. In diesem Beispiel kann man bereits beim Erstellen der Tabelle im Voraus sagen, dass die Spalte <i>Parkplatznummer</i> im Minimum also 195 mal den Nullwert enthalten wird, sollten alle Parkplätze vermietet worden sein. Hier lohnt es sich daher, die Spalte <i>Parkplatznummer</i> als Sparse-Spalte zu konfigurieren, um Speicherplatz zu sparen.
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">dbo</span><span class="p">.</span><span class="n">MieterLiegenschaftXYZ</span>
<span class="w"> </span><span class="p">(</span><span class="n">Vorname</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span>
<span class="w"> </span><span class="n">Nachname</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">50</span><span class="p">),</span>
<span class="w"> </span><span class="n">Wohnungsnummer</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span>
<span class="w"> </span><span class="n">Mietzins</span><span class="w"> </span><span class="n">money</span><span class="p">,</span>
<span class="hll"><span class="w"> </span><span class="n">Parkplatznummer</span><span class="w"> </span><span class="nb">int</span><span class="w"> </span><span class="n">SPARSE</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">;</span>
</span></pre></div>
<div class="mw-heading mw-heading2"><h2 id="Einschränkungen"><span id="Einschr.C3.A4nkungen"></span>Einschränkungen</h2></div>
<p>Die Verwendung von Sparse-Spalten bringt eine Reihe von Einschränkungen mit sich. Darunter die folgenden:<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Sparse-Spalten können nicht gleichzeitig als <i>IDENTITY, ROWGUIDCOL</i> oder <i>NOT NULL</i> konfiguriert werden. Wobei Letzteres als solches keinen Sinn ergeben würde.</li>
<li>Sparse-Spalten können nicht auf Spalten des Datentyps <i>text, ntext, image, timestamp, geometry, geography</i> oder vom Benutzer angelegte Datentypen angewendet werden.</li>
<li>Es können keine <i>Cluster Index</i> oder <i>Primary Key Index</i> auf Sparse-Spalten angewendet werden</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/de-de/library/ms174979.aspx">Microsoft MSDN: CREATE TABLE Befehlsreferenz</a></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://sqltrends.blogspot.ch/2010/11/sparse-columns-do-not-take-any-space.html">Blogspot: SQLTrends - Database and Sql Server</a></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2021-02-03" href="https://de.wikipedia.org/wiki/?title=Sparse_(SQL)&amp;oldid=208386512">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>